import axios from "axios";
import Cookie from 'js-cookie'
const http = axios.create();


http.interceptors.request.use((config)=>{
    // 请求拦截器
    let token =  Cookie.get("token") || null
    if(token) {
        config.headers['x-token'] = token 
    }
    return config
})

// 添加一个响应拦截器
// response 从服务器响应回来的内容
http.interceptors.response.use(
    (response)=>{
        // 在这个回调里把获取回来的数据过滤，只把所需的数据保留
        return response.data.result
    }, 
    (error) => {
        (function (resp) {
            console.group(`%c【代码${resp.status}: ${resp.data.msg}】`, 'color:blue;font-size:15px;');
            let inputdata = resp.config.data ? JSON.parse(resp.config.data) : undefined;
            let inputparams = resp.config.params ? resp.config.params : undefined;
            console.log(
                `%cPREVIEW:\n`, 'color:green;font-weight:bold;font-size:18px',
                `Data:`, inputdata, `\n`,
                `Params:`, inputparams, `\n`,
                { Method: resp.config.method }, `\n`,
                { Url: resp.config.url }, `\n`,
                { Envir: process.env.NODE_ENV }, `\n`,
                { Type: resp.config.headers['Content-Type'] }, `\n`,
                { msg: resp.data.msg }, `\n`,
                { status: resp.status }, `\n`,
            );
            console.groupEnd();
        })(error.response)
        return Promise.reject(error.response.data)
    }
)

export default http;

